perm filename FIX[AP,SYS]1 blob
sn#000481 filedate 1972-10-20 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 PROGRAM TO ALLOW MANUAL CHANGING OF THE DATA IN A FILE.
00003 00003 Main program.
00004 00004
00006 ENDMK
⊗;
;PROGRAM TO ALLOW MANUAL CHANGING OF THE DATA IN A FILE.
TITLE FIX
EXTERNAL DDT,JOBDDT
FLAGS←←0
CHAR←4
FBPTR←5
CNT←6
A←7
DSK17: 17
SIXBIT /DSK/
0
MAXLEN←10000 ;maximum allowable size of file
FILEF: BLOCK 4 ;lookup/enter block for file
FILE: BLOCK MAXLEN ;array for holding entire file in core
CMD: IOWD 1,FILE ;dump mode command for reading/writing the file
0
CR←15
;flag bits in AC FLAGS
GOTEXT←1
MOD←2
;Main program.
RESET: CLRBFI
OUTSTR [ASCIZ /
Oh yeah?
/]
FIX: OUTSTR [ASCIZ /
TYPE FILENAME: /]
MOVEI CNT,6 ;limit filename to 6 chars
SETZ FLAGS,
MOVE FBPTR,[POINT 6,FILEF]
SETZM FILEF+1
INCHWL CHAR
CAIN CHAR,"."
JRST RESET
GETNAM: TRZ CHAR,40 ;convert char to sixbit
TRZE CHAR,100
TRO CHAR,40
SOJL CNT,.+2
IDPB CHAR,FBPTR
INCHWL CHAR
CAIN CHAR,CR
JRST ENDNAM
CAIE CHAR,"."
JRST GETNAM
GETEXT: TLNE FLAGS,GOTEXT
JRST RESET
MOVEI CNT,3
MOVE FBPTR,[POINT 6,FILEF+1]
TLO FLAGS,GOTEXT
INCHWL CHAR
JRST GETNAM
ENDNAM: CLRBFI
OUTSTR [ASCIZ /Modify the file? /]
TLZ FLAGS,MOD
INCHRW A
CAIE A,"Y"
CAIN A,"y"
TLO FLAGS,MOD
OPEN 1,DSK17
HALT .
SETZM FILEF+3
LOOKUP 1,FILEF
JRST RESET
HLRE A,FILEF+3
CAMGE A,[-MAXLEN]
JRST [RELEAS 1,
OUTSTR [ASCIZ /
File is too big for FIX.
/]
CALL [SIXBIT /EXIT/]]
HRLM A,CMD
IN 1,CMD
JRST .+2
HALT .
RELEAS 1,
TLNN FLAGS,MOD
JRST NOMOD
OPEN 1,DSK17
HALT .
HLLZS FILEF+1
SETZM FILEF+2
SETZM FILEF+3
ENTER 1,FILEF
HALT .
NOMOD: OUTSTR [ASCIZ /
File read in.
/]
JRST @JOBDDT
WRITE:
TLNN FLAGS,MOD
JRST [OUTSTR [ASCIZ /
You said no modification!
/]
CALLI 1,12
JRST FIX]
OUT 1,CMD
JRST .+2
HALT .
RELEAS 1,
CALLI ;RESET
OUTSTR [ASCIZ /
New file written.
/]
CALLI 12 ;EXIT
END FIX